package com.xbongbong.saas.constant;

import com.xbongbong.saas.enums.business.AssembleEnum;
import com.xbongbong.saas.enums.business.BomBillEnum;
import com.xbongbong.saas.enums.business.ClueEnum;
import com.xbongbong.saas.enums.business.CompetitorEnum;
import com.xbongbong.saas.enums.business.ContactEnum;
import com.xbongbong.saas.enums.business.ContractEnum;
import com.xbongbong.saas.enums.business.CostAdjustEnum;
import com.xbongbong.saas.enums.business.CustomerManagementEnum;
import com.xbongbong.saas.enums.business.DistributorAccountEnum;
import com.xbongbong.saas.enums.business.DistributorContactEnum;
import com.xbongbong.saas.enums.business.DistributorEnum;
import com.xbongbong.saas.enums.business.FundTransferEnum;
import com.xbongbong.saas.enums.business.InventoryEnum;
import com.xbongbong.saas.enums.business.InvoiceEnum;
import com.xbongbong.saas.enums.business.MarketActivityEnum;
import com.xbongbong.saas.enums.business.OtherExpenseEnum;
import com.xbongbong.saas.enums.business.OtherIncomeEnum;
import com.xbongbong.saas.enums.business.OutstockEnum;
import com.xbongbong.saas.enums.business.PayPlanEnum;
import com.xbongbong.saas.enums.business.PaySheetEnum;
import com.xbongbong.saas.enums.business.PaymentEnum;
import com.xbongbong.saas.enums.business.PaymentSheetEnum;
import com.xbongbong.saas.enums.business.ProductEnum;
import com.xbongbong.saas.enums.business.ProductionOrderEnum;
import com.xbongbong.saas.enums.business.PurchaseEnum;
import com.xbongbong.saas.enums.business.PurchaseInvoiceEnum;
import com.xbongbong.saas.enums.business.QuotationEnum;
import com.xbongbong.saas.enums.business.RefundEnum;
import com.xbongbong.saas.enums.business.ReturnEnum;
import com.xbongbong.saas.enums.business.ReturnedPurchaseEnum;
import com.xbongbong.saas.enums.business.SalesOpportunityEnum;
import com.xbongbong.saas.enums.business.SupplierContactEnum;
import com.xbongbong.saas.enums.business.SupplierEnum;
import com.xbongbong.saas.enums.business.TransferEnum;
import com.xbongbong.saas.enums.business.WorkOrderEnum;
import lombok.Getter;

/**
 * saas业务可编辑字段 文档链接：https://xbb.yuque.com/lfwuxq/vsf9sv/cvu285
 * https://alidocs.dingtalk.com/i/nodes/mdvQnONayjBJKLG4BQeR8PY2MeXzp5o0?utm_source=search&utm_medium=search_knowledge&sideCollapsed=true
 * @author 吴峰
 * @version v1.0
 * @date 2019/3/21 9:40
 * @since v1.0
 */
@Getter
public class SaasEditAttrConstant {

    /**
     * 客户：客户状态、重要程度、客户性质、国家、客户来源、客户行业、客户类型、客户分级；
     */
    public static final String[] CUSTOMERMANAGEMENT = {CustomerManagementEnum.TYPE.getAttr(), CustomerManagementEnum.IMPORTANT_DEGREE.getAttr(),
            CustomerManagementEnum.IS_INDIVIDUAL.getAttr(), CustomerManagementEnum.COUNTRY.getAttr(), CustomerManagementEnum.SOURCE.getAttr(),
            CustomerManagementEnum.INDUSTRY.getAttr(), CustomerManagementEnum.GENRE.getAttr(), CustomerManagementEnum.SCALE.getAttr(), CustomerManagementEnum.LABEL.getAttr(),
            CustomerManagementEnum.RECEIVABLE_PERIOD.getAttr()};

    /**
     * 联系人：级别、重要程度、性别、决策关系、亲密度；
     */
    public static final String[] CONTACT = {ContactEnum.LEVEL.getAttr(), ContactEnum.IMPORTANT_DEGREE.getAttr(), ContactEnum.SEX.getAttr(),
            ContactEnum.RELATIONSHIP.getAttr(), ContactEnum.INTIMATE_DEGREE.getAttr()};
    /**
     * 销售机会：预计结束时间、重要程度；
     */
    public static final String[] SALESOPPORTUNITY = {SalesOpportunityEnum.ESTIMATE_END_TIME.getAttr(), SalesOpportunityEnum.IMPORTANT_DEGREE.getAttr()};

    /**
     * 合同订单： 签订日期、合同状态、付款方式、发货状态、合同类型、到期日期；
     */
    public static final String[] CONTRACT = {ContractEnum.SIGN_TIME.getAttr(), ContractEnum.STATUS.getAttr(), ContractEnum.PAY_METHOD.getAttr(),
            ContractEnum.EXPRESS_STATUS.getAttr(), ContractEnum.TYPE.getAttr(), ContractEnum.DEADLINE.getAttr(), ContractEnum.RECEIVABLE_PERIOD.getAttr()};

    public static final String [] ORDER = {};
    /**
     * 退货退款：退货原因
     */
    public static final String[] REFUND = {RefundEnum.REFUND_REASON.getAttr()};

    /**
     * 供应商：质量标准、供货成本、交货能力、服务能力、信用等级、国家；
     */
    public static final String[] SUPPLIER = {SupplierEnum.QUALITY_STANDARD.getAttr(), SupplierEnum.SUPPLY_COST.getAttr(), SupplierEnum.DELIVERY_CAPACITY.getAttr(),
            SupplierEnum.SERVER_CAPACITY.getAttr(), SupplierEnum.CREDIT_LEVEL.getAttr(), SupplierEnum.COUNTRY.getAttr()};

    /**
     * 供应商联系人：级别、性别；
     */
    public static final String[] SUPPLIERCONTACT = {SupplierContactEnum.LEVEL.getAttr(), SupplierContactEnum.SEX.getAttr()};

    /**
     * 采购合同：支付方式、状态、签订日期、预计到货日期；
     */
    public static final String[] PURCHASE = {PurchaseEnum.PAY_METHOD.getAttr(), PurchaseEnum.STATUS.getAttr(), PurchaseEnum.SIGN_TIME.getAttr(), PurchaseEnum.ESTIMATE_ARRIVE_TIME.getAttr()};

    /**
     * 采购退货：退货日期；
     */
    public static final String[] RETURNEDPURCHASE = {ReturnedPurchaseEnum.TIME.getAttr()};

    /**
     * BOM清单：BOM状态；
     */
    public static final String[] BOMBILL = {BomBillEnum.STATUS.getAttr()};
    /**
     * 生产单：计划完成时间；
     */
    public static final String[] PRODUCTIONORDER = {ProductionOrderEnum.PLAN_TIME.getAttr()};
    /**
     * 应收款：回款类型、(原saas支持编辑，现pro不要支持：预计回款日期)；
     */
    public static final String[] PAYMENT = {PaymentEnum.PAYMENT_TYPE.getAttr()};
    /**
     * 回款单：支付方式、备注；
     */
    public static final String[] PAYMENTSHEET = {PaymentSheetEnum.PAY_METHOD.getAttr(), PaymentSheetEnum.MEMO.getAttr()};
    /**
     * 付款计划：付款类型、(原saas支持编辑，现pro不要支持：预计付款日期)；
     * bugid:18556 加回预计付款日期
     */
    public static final String[] PAYPLAN = {PayPlanEnum.PAY_TYPE.getAttr(), PayPlanEnum.ESTIMATE_TIME.getAttr()};
    /**
     * 付款单：支付方式、备注；
     */
    public static final String[] PAYSHEET = {PaySheetEnum.PAY_TYPE.getAttr(), PaySheetEnum.MEMO.getAttr()};
    /**
     * 发票：开票日期、发票类型、发票号码；
     */
    public static final String[] INVOICE = {InvoiceEnum.INVOICE_DATE.getAttr(), InvoiceEnum.INVOICE_TYPE.getAttr(), InvoiceEnum.INVOICE_NUMBER.getAttr()};

    /**
     * 进项发票: 开票日期、发票类型、发票号码
     */
    public static final String[] PURCHASEINVOICE = {PurchaseInvoiceEnum.INVOICE_DATE.getAttr(),PurchaseInvoiceEnum.INVOICE_TYPE.getAttr(),PurchaseInvoiceEnum.INVOICE_NUMBER.getAttr()};
    /**
     * 装配出入库单：装配日期；
     */
    public static final String[] ASSEMBLE = {AssembleEnum.ASSEMBLE_TIME.getAttr()};

    /**
     * 入库单：入库日期；
     */
    public static final String[] INSTOCK = {};

    /**
     * 入库单：入库日期；
     */
    public static final String[] PURCHASEINSTOCK = {};

    /**
     * 入库单：入库日期；
     */
    public static final String[] REFUNDINSTOCK = {};

    /**
     * 入库单：入库日期；
     */
    public static final String[] PRODUCTIONINSTOCK = {};

    /**
     * 入库单：入库日期；
     */
    public static final String[] RETURNEDMATERIELINSTOCK = {};

    /**
     * 出库单：出库日期、物流公司；
     */
    public static final String[] OUTSTOCK = {OutstockEnum.EXPRESS_NAME.getAttr()};

    /**
     * 出库单：出库日期、物流公司；
     */
    public static final String[] CONTRACTOUTSTOCK = {OutstockEnum.EXPRESS_NAME.getAttr()};

    /**
     * 出库单：出库日期、物流公司；
     */
    public static final String[] ORDEROUTSTOCK = {OutstockEnum.EXPRESS_NAME.getAttr()};

    /**
     * 出库单：出库日期、物流公司；
     */
    public static final String[] RETURNEDPURCHASEOUTSTOCK = {OutstockEnum.EXPRESS_NAME.getAttr()};

    /**
     * 出库单：出库日期、物流公司；
     */
    public static final String[] PRODUCTIONMATERIELOUTSTOCK = {OutstockEnum.EXPRESS_NAME.getAttr()};

    /**
     * 出库单：出库日期、物流公司；
     */
    public static final String[] WORKORDEROUTSTOCK = {OutstockEnum.EXPRESS_NAME.getAttr()};

    /**
     * 盘点单：盘点日期；
     */
    public static final String[] INVENTORY = {InventoryEnum.TIME.getAttr()};
    /**
     * 调拨单：调拨日期；
     */
    public static final String[] TRANSFER = {TransferEnum.TRANSFER_TIME.getAttr()};
    /**
     * 产品列表：产品单位；
     */
    public static final String[] PRODUCT = {ProductEnum.UNIT.getAttr(), ProductEnum.CATEGORY_ID.getAttr(), ProductEnum.LABEL.getAttr()};
    /**
     * 工单列表：评价星级
     */
    public static final String[] WORKORDER = {WorkOrderEnum.SERVICE_PRICE.getAttr(), WorkOrderEnum.IMPLEMENTATION_TIME.getAttr(), WorkOrderEnum.MEMO.getAttr(), WorkOrderEnum.EMERGENCY_LEVEL.getAttr()};
    /**
     * 报价单列表：报价日期、有效日期、报价状态
     */
    public static final String[] QUOTATION = {QuotationEnum.QUOTATION_TIME.getAttr(), QuotationEnum.EFFECTIVE_TIME.getAttr(), QuotationEnum.STATUS.getAttr()};

    /**
     * 经销商档案：财务状况、销售能力、经营状况、管理能力、经营规模、级别、来源、信用
     */
    public static final String[] DISTRIBUTORMANAGEMENT = {DistributorEnum.FINANCIAL_SITUATION.getAttr(), DistributorEnum.MARKETABILITY.getAttr(),
            DistributorEnum.OPERATING_CONDITIONS.getAttr(), DistributorEnum.MANAGEMENT_ABILITY.getAttr(), DistributorEnum.BUSINESS_SCALE.getAttr(),
            DistributorEnum.SCALE.getAttr(), DistributorEnum.SOURCE.getAttr(), DistributorEnum.CREDIT.getAttr()};

    /**
     * 经销商联系人：级别、重要程度、性别、亲密度
     */
    public static final String[] DISTRIBUTORCONTACT = {DistributorContactEnum.LEVEL.getAttr(), DistributorContactEnum.IMPORTANT_DEGREE.getAttr(),
            DistributorContactEnum.SEX.getAttr(), DistributorContactEnum.INTIMATE_DEGREE.getAttr()};
    /**
     * 经销商账号：姓名，权限
     */
    public static final String[] ACCOUNT = {DistributorAccountEnum.NAME.getAttr(), DistributorAccountEnum.AUTHORITY.getAttr()};



    /**
     * 线索: 线索来源
     */
    public static final String[] CLUE = {ClueEnum.CLUE_SOURCE.getAttr(), ClueEnum.LABEL.getAttr()};

    /**
     * 市场活动: 开始时间、结束时间、活动类型、预计成本、实际成本、预计收入、实际收入、活动状态、活动说明、备注
     */
    public static final String[] MARKETACTIVITY = {MarketActivityEnum.START_TIME.getAttr(), MarketActivityEnum.END_TIME.getAttr(), MarketActivityEnum.GENRE.getAttr(), MarketActivityEnum.ESTIMATE_COST.getAttr(),
            MarketActivityEnum.REAL_COST.getAttr(), MarketActivityEnum.ESTIMATE_INCOME.getAttr(), MarketActivityEnum.REAL_INCOME.getAttr(), MarketActivityEnum.STATUS.getAttr(),
            MarketActivityEnum.CAPTION.getAttr(), MarketActivityEnum.MEMO.getAttr(), MarketActivityEnum.LABEL.getAttr()};

    /**
     * 退货单:退货原因
     */
    public static final String[] RETURN = {ReturnEnum.REFUND_REASON.getAttr()};

    /**
     * 其他收入单：支付方式、备注；
     */
    public static final String[] OTHERINCOME = {OtherIncomeEnum.PAY_METHOD.getAttr(), OtherIncomeEnum.MEMO.getAttr()};
    /**
     * 其他支出单：支付方式、备注；
     */
    public static final String[] OTHEREXPENSE = {OtherExpenseEnum.PAY_METHOD.getAttr(), OtherExpenseEnum.MEMO.getAttr()};
    /**
     * 资金调拨单：支付方式、备注；
     */
    public static final String[] FUNDTRANSFER = {FundTransferEnum.PAY_METHOD.getAttr(), FundTransferEnum.MEMO.getAttr()};
    /**
     * 成本调整单：备注
     **/
    public static final String[] COSTADJUST = { CostAdjustEnum.MEMO.getAttr()};

    /**
     * 新工单：备注
     **/
    public static final String[]  WORKORDERV2= { "text_3", "date_1", "date_2"};

    /**
     * 回执单单：备注
     **/
    public static final String[] RECEIPTORDER = {};

    /**
     * 服务项目:服务项目名称，单价（元），成本（元）
     * @See ServiceProjectEnum
     */
    public static final String[] SERVICEPROJECT = {"text_2", "num_1", "num_2"};

    /**
     * 竞争对手：企业规模，公司简介，企业地址，企业官网
     */
    public static final String[] COMPETITOR = {
            CompetitorEnum.SCALE.getAttr(),
            CompetitorEnum.INSTRUCTION.getAttr(),
            CompetitorEnum.ADDRESS.getAttr(),
            CompetitorEnum.WEBSITE.getAttr(),
    };

}
